﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;
using Tibet.Entidades;
using NUnit.Framework;
using Tibet.Logica.FabricaLogica;
using Tibet.Logica.Comandos.ComandoAdministracionLogin;
using Tibet.Logica.Comandos;

namespace Tibet
{
    [TestFixture]
    public class PruebasCredencial
    {
        /// <summary>
        /// Valida que la credencial para un usuario dado se cree correctamente
        /// </summary>
        [TestCase]
        public void CrearCredencial()
        {
            string nombreUsuario = "Alfredo";
            string clave = "12345";
             int estatus = 1;

            Credencial crendencial = new Credencial(nombreUsuario, clave, estatus);

            //consulta con la base de datos
            Comando comando = FabricaComandoCredencial.CrearComandoCrearCredencial(crendencial);
            comando.Ejecutar();

            //si se creo la crendencial del usuario
            Assert.AreEqual(comando.Flag, true);


        }
        /// <summary>
        /// Valida que la crendencial se modifique bajo el nombre unico de usuario
        /// </summary>
        [TestCase]
        public void ModificarCredencial()
        {
            string nombreUsuario = "Alfredo";
            string clave = "12";

            Credencial crend = new Credencial(nombreUsuario, clave);

            //consulta con la base de datos

            Comando comando = FabricaComandoCredencial.CrearComandoModificarCredencial(crend);
            comando.Ejecutar();

            //si la modifico
            Assert.AreEqual(comando.Flag, true); 

        }

        /// <summary>
        /// Valida que exista la credencial
        /// </summary>
        [TestCase]
        public void ExisteCredencial()
        {
            string nombreUsuario = "Alfredo";
            string clave = "12";

            Credencial cred = new Credencial(nombreUsuario, clave);

            //consulta con la base de datos
            Comando comando = FabricaComandoCredencial.CrearComandoValidarCredencial(cred);
            comando.Ejecutar();
            //si encuentra la credencial
            Assert.AreEqual(comando.Flag, true);

        }

    }
}
